home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 051-075 / disk_075 / comm / menus.c < prev    next >
C/C++ Source or Header  |  1992-05-06  |  27KB  |  821 lines

  1. /*****************************************************
  2.  *                  Menu Definitions                 *
  3.  *                                                   *
  4.  *             Created with Menu Creator             *
  5.  *                        by                         *
  6.  *                   David Pehrson                   *
  7.  *                                                   *
  8.  *         Copyright (C) 1986  David Pehrson         *
  9.  *                 Mantis Development                *
  10.  *                                                   *
  11.  *           Modified for Comm program  Djj          *
  12.  *****************************************************/
  13.  
  14. /* Comm menu handler routines */
  15.  
  16. #define MENUS  1
  17. #include "globals.h"
  18.  
  19. #define SYSMAX   6
  20. #define MAXMENU  6
  21.  
  22. static USHORT  editphone;
  23.  
  24. struct IntuiText PhoneText[] =
  25. {
  26.    { 3, 1, JAM1, 0, 1, 0, (UBYTE *)"Hang up",     NULL },
  27.    { 3, 1, JAM1, 0, 1, 0, (UBYTE *)"   Alt Service", NULL },
  28.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[0].name, NULL },
  29.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[1].name, NULL },
  30.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[2].name, NULL },
  31.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[3].name, NULL },
  32.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[4].name, NULL },
  33.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[5].name, NULL },
  34.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[6].name, NULL },
  35.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[7].name, NULL },
  36.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[8].name, NULL },
  37.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[9].name, NULL },
  38.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[10].name, NULL },
  39.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[11].name, NULL },
  40.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[12].name, NULL },
  41.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[13].name, NULL },
  42.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[14].name, NULL },
  43.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[15].name, NULL },
  44.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[16].name, NULL },
  45.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[17].name, NULL },
  46.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[18].name, NULL },
  47.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[19].name, NULL },
  48.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[20].name, NULL },
  49.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[21].name, NULL },
  50.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[22].name, NULL },
  51.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[23].name, NULL },
  52.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[24].name, NULL },
  53.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[25].name, NULL },
  54.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[26].name, NULL },
  55.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[27].name, NULL },
  56.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[28].name, NULL },
  57.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[29].name, NULL },
  58.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[30].name, NULL },
  59.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[31].name, NULL },
  60.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[32].name, NULL },
  61.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[33].name, NULL },
  62.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[34].name, NULL },
  63.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[35].name, NULL },
  64.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[36].name, NULL },
  65.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[37].name, NULL },
  66.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[38].name, NULL },
  67.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[39].name, NULL },
  68.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[40].name, NULL },
  69.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[41].name, NULL },
  70.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[42].name, NULL },
  71.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)&pdir[43].name, NULL }
  72. };
  73.  
  74. struct IntuiText EolText[] =
  75. {
  76.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   TX EOL = CR",    NULL },
  77.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   TX EOL = CR/LF", NULL },
  78.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   RX EOL = CR",    NULL },
  79.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   RX EOL = CR/LF", NULL }
  80. };
  81.  
  82. struct IntuiText BaudText[] =
  83. {
  84.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   300",   NULL },
  85.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   1200",  NULL },
  86.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   2400",  NULL },
  87.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   4800",  NULL },
  88.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   9600",  NULL },
  89.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   19200", NULL }
  90. };
  91.  
  92. struct IntuiText ParityText[] =
  93. {
  94.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   None", NULL },
  95.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   Odd",  NULL },
  96.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   Even", NULL }
  97. };
  98.  
  99. struct IntuiText LengthText[] =
  100. {
  101.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   8 bits", NULL },
  102.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   7 bits", NULL }
  103. };
  104.  
  105. struct IntuiText StopText[] =
  106. {
  107.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   1 bit",  NULL },
  108.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   2 bits", NULL }
  109. };
  110.  
  111. struct IntuiText DuplexText[] =
  112. {
  113.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   Full", NULL },
  114.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   Half", NULL }
  115. };
  116.  
  117. struct IntuiText KeyText[] =
  118. {
  119.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)" Load file ",  NULL },
  120.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)" Save file ",  NULL },
  121.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)" Edit Macro ", NULL }
  122. };
  123.  
  124. struct IntuiText PlibText[] =
  125. {
  126.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)" Load file ", NULL },
  127.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)" Save file ", NULL },
  128.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)" Edit file ", NULL }
  129. };
  130.  
  131. struct IntuiText AltFiletxt[] =
  132. {
  133.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)" Start ASCII Capture", NULL },
  134.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)" Start ASCII Send",    NULL },
  135.    { 3, 1, JAM1, 0, 1, 0, (UBYTE *)" Stop ASCII Capture",  NULL },
  136.    { 3, 1, JAM1, 0, 1, 0, (UBYTE *)" Stop ASCII Send",     NULL },
  137. };
  138.  
  139. struct IntuiText FileText[] =
  140. {
  141.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)" ",                    NULL },
  142.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)" ",                    NULL },
  143.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)" XMODEM Receive",      NULL },
  144.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"WXMODEM Receive",      NULL },
  145.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)" XMODEM Transmit",     NULL },
  146.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)" XMODEM Text Send",    NULL },
  147.    { 3, 1, JAM1, 0, 1, 0, (UBYTE *)" QUIT Comm",           NULL },
  148. };
  149.  
  150. struct IntuiText SysText[] =
  151. {
  152.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   Split Screen",   NULL },
  153.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   View Transfers", NULL },
  154.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   Chop Files",     NULL },
  155.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   End of Line",    NULL },
  156.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   Key Macro",      NULL },
  157.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   Phone Dir",      NULL },
  158.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   Title Bar",      NULL }
  159. };
  160.  
  161. struct IntuiText ModeText[] =
  162. {
  163.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   Checksum", NULL },
  164.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   CRC",      NULL }
  165. };
  166.  
  167. struct IntuiText SerialText[] =
  168. {
  169.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"Baud Rate",   NULL },
  170.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"Parity",      NULL },
  171.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"Data Length", NULL },
  172.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"Stop Bits",   NULL },
  173.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"Duplex",      NULL },
  174.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"XON / XOFF",  NULL },
  175.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"Send Break",  NULL }
  176. };
  177.  
  178. struct IntuiText XonText[] =
  179. {
  180.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   Turned off",   NULL },
  181.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   Automatic",    NULL },
  182. };
  183.  
  184. struct IntuiText TitleText[] =
  185. {
  186.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   Off", NULL },
  187.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   On" , NULL },
  188. };
  189.  
  190. struct IntuiText DebugText[] =
  191. {
  192.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   Don't mask parity",   NULL },
  193.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"                    ",   NULL },
  194.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   Show HEX chars",      NULL },
  195.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"                      ", NULL },
  196.    { 0, 1, JAM1, 0, 1, 0, (UBYTE *)"   Show Protocol chars", NULL }
  197. };
  198.  
  199. struct MenuItem  PhoneItem[ MAXPHONE+2 ] =
  200. {
  201.    {
  202.       &PhoneItem[1], 0, 1, 116, 8, ITEMENABLED | ITEMTEXT | HIGHBOX,
  203.       0, (APTR)&PhoneText[0], NULL, 'H', NULL, NULL
  204.    },
  205.    {
  206.       &PhoneItem[2], 121, 1, 164, 8, ITEMENABLED | ITEMTEXT | HIGHBOX | CHECKIT,
  207.       0, (APTR)&PhoneText[1], NULL, 'A', NULL, NULL
  208.    },
  209.    {
  210.       &PhoneItem[3], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  211.       0, (APTR)&PhoneText[2], NULL, '1', NULL, NULL
  212.    },
  213.    {
  214.       &PhoneItem[4], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  215.       0, (APTR)&PhoneText[3], NULL, '2', NULL, NULL
  216.    },
  217.    {
  218.       &PhoneItem[5], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  219.       0, (APTR)&PhoneText[4], NULL, '3', NULL, NULL
  220.    },
  221.    {
  222.       &PhoneItem[6], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  223.       0, (APTR)&PhoneText[5], NULL, '4', NULL, NULL
  224.    },
  225.    {
  226.       &PhoneItem[7], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  227.       0, (APTR)&PhoneText[6], NULL, '5', NULL, NULL
  228.    },
  229.    {
  230.       &PhoneItem[8], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  231.       0, (APTR)&PhoneText[7], NULL, '6', NULL, NULL
  232.    },
  233.    {
  234.       &PhoneItem[9], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  235.       0, (APTR)&PhoneText[8], NULL, '7', NULL, NULL
  236.    },
  237.    {
  238.       &PhoneItem[10], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  239.       0, (APTR)&PhoneText[9], NULL, '8', NULL, NULL
  240.    },
  241.    {
  242.       &PhoneItem[11], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  243.       0, (APTR)&PhoneText[10], NULL, '9', NULL, NULL
  244.    },
  245.    {
  246.       &PhoneItem[12], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  247.       0, (APTR)&PhoneText[11], NULL, '0', NULL, NULL
  248.    },
  249.    {
  250.       &PhoneItem[13], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  251.       0, (APTR)&PhoneText[12], NULL, NULL, NULL, NULL
  252.    },
  253.    {
  254.       &PhoneItem[14], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  255.       0, (APTR)&PhoneText[13], NULL, NULL, NULL, NULL
  256.    },
  257.    {
  258.       &PhoneItem[15], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  259.       0, (APTR)&PhoneText[14], NULL, NULL, NULL, NULL
  260.    },
  261.    {
  262.       &PhoneItem[16], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  263.       0, (APTR)&PhoneText[15], NULL, NULL, NULL, NULL
  264.    },
  265.    {
  266.       &PhoneItem[17], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  267.       0, (APTR)&PhoneText[16], NULL, NULL, NULL, NULL
  268.    },
  269.    {
  270.       &PhoneItem[18], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  271.       0, (APTR)&PhoneText[17], NULL, NULL, NULL, NULL
  272.    },
  273.    {
  274.       &PhoneItem[19], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  275.       0, (APTR)&PhoneText[18], NULL, NULL, NULL, NULL
  276.    },
  277.    {
  278.       &PhoneItem[20], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  279.       0, (APTR)&PhoneText[19], NULL, NULL, NULL, NULL
  280.    },
  281.    {
  282.       &PhoneItem[21], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  283.       0, (APTR)&PhoneText[20], NULL, NULL, NULL, NULL
  284.    },
  285.    {
  286.       &PhoneItem[22], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  287.       0, (APTR)&PhoneText[21], NULL, NULL, NULL, NULL
  288.    },
  289.    {
  290.       &PhoneItem[23], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  291.       0, (APTR)&PhoneText[22], NULL, NULL, NULL, NULL
  292.    },
  293.    {
  294.       &PhoneItem[24], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  295.       0, (APTR)&PhoneText[23], NULL, NULL, NULL, NULL
  296.    },
  297.    {
  298.       &PhoneItem[25], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  299.       0, (APTR)&PhoneText[24], NULL, NULL, NULL, NULL
  300.    },
  301.    {
  302.       &PhoneItem[26], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  303.       0, (APTR)&PhoneText[25], NULL, NULL, NULL, NULL
  304.    },
  305.    {
  306.       &PhoneItem[27], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  307.       0, (APTR)&PhoneText[26], NULL, NULL, NULL, NULL
  308.    },
  309.    {
  310.       &PhoneItem[28], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  311.       0, (APTR)&PhoneText[27], NULL, NULL, NULL, NULL
  312.    },
  313.    {
  314.       &PhoneItem[29], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  315.       0, (APTR)&PhoneText[28], NULL, NULL, NULL, NULL
  316.    },
  317.    {
  318.       &PhoneItem[30], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  319.       0, (APTR)&PhoneText[29], NULL, NULL, NULL, NULL
  320.    },
  321.    {
  322.       &PhoneItem[31], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  323.       0, (APTR)&PhoneText[30], NULL, NULL, NULL, NULL
  324.    },
  325.    {
  326.       &PhoneItem[32], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  327.       0, (APTR)&PhoneText[31], NULL, NULL, NULL, NULL
  328.    },
  329.    {
  330.       &PhoneItem[33], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  331.       0, (APTR)&PhoneText[32], NULL, NULL, NULL, NULL
  332.    },
  333.    {
  334.       &PhoneItem[34], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  335.       0, (APTR)&PhoneText[33], NULL, NULL, NULL, NULL
  336.    },
  337.    {
  338.       &PhoneItem[35], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  339.       0, (APTR)&PhoneText[34], NULL, NULL, NULL, NULL
  340.    },
  341.    {
  342.       &PhoneItem[36], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  343.       0, (APTR)&PhoneText[35], NULL, NULL, NULL, NULL
  344.    },
  345.    {
  346.       &PhoneItem[37], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  347.       0, (APTR)&PhoneText[36], NULL, NULL, NULL, NULL
  348.    },
  349.    {
  350.       &PhoneItem[38], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  351.       0, (APTR)&PhoneText[37], NULL, NULL, NULL, NULL
  352.    },
  353.    {
  354.       &PhoneItem[39], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  355.       0, (APTR)&PhoneText[38], NULL, NULL, NULL, NULL
  356.    },
  357.    {
  358.       &PhoneItem[40], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  359.       0, (APTR)&PhoneText[39], NULL, NULL, NULL, NULL
  360.    },
  361.    {
  362.       &PhoneItem[41], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  363.       0, (APTR)&PhoneText[40], NULL, NULL, NULL, NULL
  364.    },
  365.    {
  366.       &PhoneItem[42], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  367.       0, (APTR)&PhoneText[41], NULL, NULL, NULL, NULL
  368.    },
  369.    {
  370.       &PhoneItem[43], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  371.       0, (APTR)&PhoneText[42], NULL, NULL, NULL, NULL
  372.    },
  373.    {
  374.       &PhoneItem[44], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  375.       0, (APTR)&PhoneText[43], NULL, NULL, NULL, NULL
  376.    },
  377.    {
  378.       &PhoneItem[45], 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  379.       0, (APTR)&PhoneText[44], NULL, NULL, NULL, NULL
  380.    },
  381.    {
  382.       NULL, 0, 0, 140, 8, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  383.       0, (APTR)&PhoneText[45], NULL, NULL, NULL, NULL
  384.    }
  385. };
  386.  
  387. struct MenuItem EolItems[] =
  388. {
  389.    {
  390.       &EolItems[1], 140, 0, 152, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  391.       2, (APTR)&EolText[0], NULL, NULL, NULL, NULL
  392.    },
  393.    {
  394.       &EolItems[2], 140, 10, 152, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  395.       1, (APTR)&EolText[1], NULL, NULL, NULL, NULL
  396.    },
  397.    {
  398.       &EolItems[3], 140, 20, 152, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  399.       8, (APTR)&EolText[2], NULL, NULL, NULL, NULL
  400.    },
  401.    {
  402.       NULL, 140, 30, 152, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  403.       4, (APTR)&EolText[3], NULL, NULL, NULL, NULL
  404.    },
  405. };
  406.  
  407. struct MenuItem BaudItems[] =
  408. {
  409.    {
  410.       &BaudItems[1], 92, 0, 80, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  411.       62, (APTR)&BaudText[0], NULL, NULL, NULL, NULL
  412.    },
  413.    {
  414.       &BaudItems[2], 92, 10, 80, 10, CHECKED | ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  415.       61, (APTR)&BaudText[1], NULL, NULL, NULL, NULL
  416.    },
  417.    {
  418.       &BaudItems[3], 92, 20, 80, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  419.       59, (APTR)&BaudText[2], NULL, NULL, NULL, NULL
  420.    },
  421.    {
  422.       &BaudItems[4], 92, 30, 80, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  423.       55, (APTR)&BaudText[3], NULL, NULL, NULL, NULL
  424.    },
  425.    {
  426.       &BaudItems[5], 92, 40, 80, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  427.       47, (APTR)&BaudText[4], NULL, NULL, NULL, NULL
  428.    },
  429.    {
  430.       NULL, 92, 50, 80, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  431.       31, (APTR)&BaudText[5], NULL, NULL, NULL, NULL
  432.    },
  433. };
  434.  
  435. struct MenuItem ParityItems[] =
  436. {
  437.    {
  438.       &ParityItems[1], 92, 0, 72, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  439.       6, (APTR)&ParityText[0], NULL, NULL, NULL, NULL
  440.    },
  441.    {
  442.       &ParityItems[2], 92, 10, 72, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  443.       5, (APTR)&ParityText[1], NULL, NULL, NULL, NULL
  444.    },
  445.    {
  446.       NULL, 92, 20, 72, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  447.       3, (APTR)&ParityText[2], NULL, NULL, NULL, NULL
  448.    },
  449. };
  450.  
  451. struct MenuItem KeyItems[] =
  452. {
  453.    {
  454.       &KeyItems[1], 140, 0, 96, 10, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  455.       0, (APTR)&KeyText[0], NULL, NULL, NULL, NULL
  456.    },
  457.    {
  458.       &KeyItems[2], 140, 10, 96, 10, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  459.       0, (APTR)&KeyText[1], NULL, NULL, NULL, NULL
  460.    },
  461.    {
  462.       NULL, 140, 20, 96, 10, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  463.       0, (APTR)&KeyText[2], NULL, NULL, NULL, NULL
  464.    },
  465. };
  466.  
  467. struct MenuItem PlibItems[] =
  468. {
  469.    {
  470.       &PlibItems[1], 140, 0, 96, 10, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  471.       0, (APTR)&PlibText[0], NULL, NULL, NULL, NULL
  472.    },
  473.    {
  474.       &PlibItems[2], 140, 10, 96, 10, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  475.       0, (APTR)&PlibText[1], NULL, NULL, NULL, NULL
  476.    },
  477.    {
  478.       NULL, 140, 20, 96, 10, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  479.       0, (APTR)&PlibText[2], NULL, NULL, NULL, NULL
  480.    },
  481. };
  482.  
  483. struct MenuItem LengthItems[] =
  484. {
  485.    {
  486.       &LengthItems[1], 92, 0, 88, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  487.       2, (APTR)&LengthText[0], NULL, NULL, NULL, NULL
  488.    },
  489.    {
  490.       NULL, 92, 10, 88, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  491.       1, (APTR)&LengthText[1], NULL, NULL, NULL, NULL
  492.    },
  493. };
  494.  
  495. struct MenuItem XonItems[] =
  496. {
  497.    {
  498.       &XonItems[1], 92, 0, 112, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  499.       2, (APTR)&XonText[0], NULL, NULL, NULL, NULL
  500.    },
  501.    {
  502.       NULL, 92, 10, 112, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  503.       1, (APTR)&XonText[1], NULL, NULL, NULL, NULL
  504.    }
  505. };
  506.  
  507. struct MenuItem TitleItems[] =
  508. {
  509.    {
  510.       &TitleItems[1], 92, 0, 54, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  511.       2, (APTR)&TitleText[0], NULL, NULL, NULL, NULL
  512.    },
  513.    {
  514.       NULL, 92, 10, 54, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  515.       1, (APTR)&TitleText[1], NULL, NULL, NULL, NULL
  516.    }
  517. };
  518.  
  519. struct MenuItem StopItems[] =
  520. {
  521.    {
  522.       &StopItems[1], 92, 0, 88, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  523.       2, (APTR)&StopText[0], NULL, NULL, NULL, NULL
  524.    },
  525.    {
  526.       NULL, 92, 10, 88, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  527.       1, (APTR)&StopText[1], NULL, NULL, NULL, NULL
  528.    },
  529. };
  530.  
  531. struct MenuItem DuplexItems[] =
  532. {
  533.    {
  534.       &DuplexItems[1], 92, 0, 72, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  535.       2, (APTR)&DuplexText[0], NULL, NULL, NULL, NULL
  536.    },
  537.    {
  538.       NULL, 92, 10, 72, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  539.       1, (APTR)&DuplexText[1], NULL, NULL, NULL, NULL
  540.    },
  541. };
  542.  
  543. struct MenuItem FileItems[] =
  544. {
  545.    {
  546.       &FileItems[1], 0, 0, 195, 10, ITEMENABLED | ITEMTEXT | COMMSEQ | HIGHCOMP,
  547.       0, (APTR)&FileText[0], NULL, 'C', NULL, NULL
  548.    },
  549.    {
  550.       &FileItems[2], 0, 10, 195, 10, ITEMENABLED | ITEMTEXT | COMMSEQ | HIGHCOMP,
  551.       0, (APTR)&FileText[1], NULL, 'S', NULL, NULL
  552.    },
  553.    {
  554.       &FileItems[3], 0, 22, 195, 10, ITEMENABLED | ITEMTEXT | COMMSEQ | HIGHCOMP,
  555.       0, (APTR)&FileText[2], NULL, 'D', NULL, NULL
  556.    },
  557.    {
  558.       &FileItems[4], 0, 32, 195, 10, ITEMENABLED | ITEMTEXT | COMMSEQ | HIGHCOMP,
  559.       0, (APTR)&FileText[3], NULL, 'W', NULL, NULL
  560.    },
  561.    {
  562.       &FileItems[5], 0, 44, 195, 10, ITEMENABLED | ITEMTEXT | COMMSEQ | HIGHCOMP,
  563.       0, (APTR)&FileText[4], NULL, 'U', NULL, NULL
  564.    },
  565.    {
  566.       &FileItems[6], 0, 54, 195, 10, ITEMENABLED | ITEMTEXT | COMMSEQ | HIGHCOMP,
  567.       0, (APTR)&FileText[5], NULL, 'T', NULL, NULL
  568.    },
  569.    {
  570.       NULL, 0, 66, 195, 10, ITEMENABLED | ITEMTEXT | COMMSEQ | HIGHBOX,
  571.       0, (APTR)&FileText[6], NULL, 'Q', NULL, NULL
  572.    },
  573. };
  574.  
  575. struct MenuItem SysItems[] =
  576. {
  577.    {
  578.       &SysItems[1], 0, 0, 152, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  579.       0, (APTR)&SysText[0], NULL, NULL, NULL, NULL
  580.    },
  581.    {
  582.       &SysItems[2], 0, 10, 152, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  583.       0, (APTR)&SysText[1], NULL, NULL, NULL, NULL
  584.    },
  585.    {
  586.       &SysItems[3], 0, 20, 152, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  587.       0, (APTR)&SysText[2], NULL, NULL, NULL, NULL
  588.    },
  589.    {
  590.       &SysItems[4], 0, 30, 152, 10, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  591.       0, (APTR)&SysText[3], NULL, NULL, &EolItems[0], NULL
  592.    },
  593.    {
  594.       &SysItems[5], 0, 40, 152, 10, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  595.       0, (APTR)&SysText[4], NULL, NULL, &KeyItems[0], NULL
  596.    },
  597.    {
  598.       &SysItems[6], 0, 50, 152, 10, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  599.       0, (APTR)&SysText[5], NULL, NULL, &PlibItems[0], NULL
  600.    },
  601.    {
  602.       0, 0, 60, 152, 10, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  603.       0, (APTR)&SysText[6], NULL, NULL, &TitleItems[0], NULL
  604.    },
  605. };
  606.  
  607. struct MenuItem ModeItems[] =
  608. {
  609.    {
  610.       &ModeItems[1], 0, 0, 104, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  611.       2, (APTR)&ModeText[0], NULL, NULL, NULL, NULL
  612.    },
  613.    {
  614.       NULL, 0, 10, 104, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  615.       1, (APTR)&ModeText[1], NULL, NULL, NULL, NULL
  616.    },
  617. };
  618.  
  619. struct MenuItem SerialItems[] =
  620. {
  621.    {
  622.       &SerialItems[1], 0, 0, 104, 10, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  623.       0, (APTR)&SerialText[0], NULL, NULL, &BaudItems[0], NULL
  624.    },
  625.    {
  626.       &SerialItems[2], 0, 10, 104, 10, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  627.       0, (APTR)&SerialText[1], NULL, NULL, &ParityItems[0], NULL
  628.    },
  629.    {
  630.       &SerialItems[3], 0, 20, 104, 10, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  631.       0, (APTR)&SerialText[2], NULL, NULL, &LengthItems[0], NULL
  632.    },
  633.    {
  634.       &SerialItems[4], 0, 30, 104, 10, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  635.       0, (APTR)&SerialText[3], NULL, NULL, &StopItems[0], NULL
  636.    },
  637.    {
  638.       &SerialItems[5], 0, 40, 104, 10, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  639.       0, (APTR)&SerialText[4], NULL, NULL, &DuplexItems[0], NULL
  640.    },
  641.    {
  642.       &SerialItems[6], 0, 50, 104, 10, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  643.       0, (APTR)&SerialText[5], NULL, NULL, &XonItems[0], NULL
  644.    },
  645.    {
  646.       NULL, 0, 60, 104, 10, ITEMENABLED | ITEMTEXT | HIGHCOMP,
  647.       0, (APTR)&SerialText[6], NULL, 'B', NULL, NULL
  648.    }
  649. };
  650.  
  651. struct MenuItem DebugItems[] =
  652. {
  653.    {
  654.       &DebugItems[1], 0, 0, 192, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  655.       0, (APTR)&DebugText[0], NULL, NULL, NULL, NULL
  656.    },
  657.    {
  658.       &DebugItems[2], 0, 10, 192, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  659.       0, (APTR)&DebugText[1], NULL, NULL, NULL, NULL
  660.    },
  661.    {
  662.       &DebugItems[3], 0, 20, 192, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  663.       0, (APTR)&DebugText[2], NULL, NULL, NULL, NULL
  664.    },
  665.    {
  666.       &DebugItems[4], 0, 30, 192, 10, ITEMENABLED | CHECKIT | ITEMTEXT | HIGHCOMP,
  667.       0, (APTR)&DebugText[3], NULL, NULL, NULL, NULL
  668.    },
  669.    {
  670.       0, 0, 40, 192, 10, ITEMENABLED | ITEMTEXT | CHECKIT | HIGHCOMP,
  671.       0, (APTR)&DebugText[4], NULL, NULL, NULL, NULL
  672.    }
  673. };
  674.  
  675.  
  676. struct Menu menu[] =
  677. {
  678.    { &menu[1], 5,   0, 54, 8, MENUENABLED, (BYTE *)" File",  &FileItems[0]   },
  679.    { &menu[2], 56,  0, 70, 8, MENUENABLED, (BYTE *)" System",&SysItems[0]    },
  680.    { &menu[3], 125, 0, 54, 8, MENUENABLED, (BYTE *)" Mode",  &ModeItems[0]   },
  681.    { &menu[4], 178, 0, 70, 8, MENUENABLED, (BYTE *)" Serial",&SerialItems[0] },
  682.    { &menu[5], 247, 0,302, 8, MENUENABLED, (BYTE *)" Phone", &PhoneItem[0]   },
  683.    { NULL,     3,   0,  1, 0, MENUENABLED, (BYTE *)"",       &DebugItems[0]  },
  684. };
  685.  
  686. /*****************************************************************/
  687. /*    The following function initializes the structure arrays    */
  688. /*   needed to provide the phone library.                        */
  689. /*****************************************************************/
  690. void InitPhoneItem()
  691. {
  692. SHORT n;
  693.  
  694. /* initialize each menu item and IntuiText with loop */
  695.   for( n = 2; n < MAXPHONE+2; n++ )
  696.   {
  697.     if( n & 1 )
  698.       PhoneItem[n].LeftEdge     = 145;
  699.     else
  700.       PhoneItem[n].LeftEdge     = 0;
  701.  
  702.     PhoneItem[n].TopEdge      = ((SHORT)((n-2)/2) * 8) + 9;
  703.   }
  704. }
  705.  
  706. /*  Change the text message in the ASCII Capture and ASCII Send menu
  707.     entries
  708. */
  709.  
  710. Swap_capture(which,flag)
  711. int flag,which;
  712. {
  713.    if(which == ASCCAPT)
  714.    {
  715.       if(flag == START)       /* Start ASCII Capture */
  716.       {
  717.           FileText[0]          = AltFiletxt[0];
  718.           FileItems[0].Flags    &= ~HIGHBOX;
  719.           FileItems[0].Flags    |= HIGHCOMP;
  720.       }
  721.       else                    /* Stop ASCII Capture */
  722.       {
  723.          FileText[0]          = AltFiletxt[2];
  724.          FileItems[0].Flags    &= ~HIGHCOMP;
  725.          FileItems[0].Flags    |= HIGHBOX;
  726.       }
  727.    }
  728.    else if(which == ASCSEND)
  729.    {
  730.       if(flag == START)       /* Start ASCII Send */
  731.       {
  732.          FileText[1]         = AltFiletxt[1];
  733.          FileItems[1].Flags    &= ~HIGHBOX;
  734.          FileItems[1].Flags    |= HIGHCOMP;
  735.       }
  736.       else                    /* Stop ASCII Send */
  737.       {
  738.          FileText[1]          = AltFiletxt[3];
  739.          FileItems[1].Flags    &= ~HIGHCOMP;
  740.          FileItems[1].Flags    |= HIGHBOX;
  741.       }
  742.    }
  743. }
  744.  
  745. /*   The following function initializes the Menu structure array with
  746.      appropriate values
  747. */
  748.  
  749. InitMenus()
  750. {
  751.   InitPhoneItem();
  752.  
  753.   ModeItems[1].Flags   |= CHECKED;      /* CRC */
  754. /*  BaudItems[1].Flags   |= CHECKED;  */    /* 1200 baud */
  755.   SysItems[2].Flags    |= CHECKED;      /* CHOP mode  */
  756.   ParityItems[0].Flags |= CHECKED;      /* no parity */
  757.   LengthItems[0].Flags |= CHECKED;      /* 8 bits */
  758.   StopItems[0].Flags   |= CHECKED;      /* 1 stop bit */
  759.   EolItems[0].Flags    |= CHECKED;      /* TX EOL = CR */
  760.   EolItems[2].Flags    |= CHECKED;      /* RX EOL = CR */
  761.   DuplexItems[0].Flags |= CHECKED;      /* Full Duplex */
  762.   PlibItems[1].Flags   &= ~ITEMENABLED; /* Save Phone Dir */
  763.   XonItems[0].Flags    |= CHECKED;      /* XON / XOFF off */
  764.   TitleItems[0].Flags  |= CHECKED;      /* Title bar off */
  765.  
  766.   FileText[0]           = AltFiletxt[0];
  767.   FileText[1]           = AltFiletxt[1];
  768. }
  769.  
  770. Set_Menus(val)
  771. int val;
  772. {
  773.    if(val)
  774.    {
  775.       set_menus_on(tx_window);
  776.       if(rx_window)
  777.          set_menus_on(rx_window);
  778.    }
  779.    else
  780.    {
  781.       set_menus_off(tx_window);
  782.       if(rx_window)
  783.          set_menus_off(rx_window);
  784.    }
  785. }
  786.  
  787. /* enable menus after an XMODEM transfer */
  788. set_menus_on(window)
  789. struct Window *window;
  790. {
  791.    ULONG n;
  792.  
  793.    OnMenu(window,SHIFTITEM( NOITEM ) | 0);    /* File menu */
  794.    OnMenu(window,SHIFTITEM( NOITEM ) | 2);    /* Mode menu */
  795.    OnMenu(window,SHIFTITEM( NOITEM ) | 3);    /* Serial menu */
  796.    OnMenu(window,SHIFTITEM( NOITEM ) | 4);    /* Phone menu */
  797.  
  798.    for( n = 3; n < SYSMAX; n++)
  799.       OnMenu(window,SHIFTSUB( NOSUB ) | SHIFTITEM( n ) | 1 );
  800.    PlibItems[2].Flags = editphone;
  801. }
  802.  
  803. /* Disable menus during an XMODEM transfer */
  804. set_menus_off(window)
  805. struct Window *window;
  806. {
  807.    ULONG n;
  808.  
  809.    editphone = PlibItems[2].Flags;
  810.  
  811.    OffMenu(window,SHIFTITEM( NOITEM ) | 0);    /* File menu */
  812.    OffMenu(window,SHIFTITEM( NOITEM ) | 2);    /* Mode menu */
  813.    OffMenu(window,SHIFTITEM( NOITEM ) | 3);    /* Serial menu */
  814.    OffMenu(window,SHIFTITEM( NOITEM ) | 4);    /* Phone menu */
  815.  
  816.    for(n = 3; n < SYSMAX; n++)            /* disable some of System menu */
  817.       OffMenu(window, SHIFTSUB( NOSUB) | SHIFTITEM( n ) | 1 );
  818. }
  819.  
  820.  
  821.